/*************************************************************************
	> File Name: 2.374D.cpp
	> Author: hug
	> Mail: hug@haizeix.com
	> Created Time: 日  2/ 9 10:32:46 2025
 ************************************************************************/

#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;

struct Edge {
    double a, b, c, d, len;
};

int n, s, t;
vector<Edge> arr;
int aa[10];
double val1 = 0, ans = -1;

double S(double x) { return x * x; }
double dis(double a, double b, double c, double d) {
    return sqrt(S(a - c) + S(b - d));
}

void solve() {
    for (int t = 0, T = (1 << n); t < T; t++) {
        double x = 0, y = 0;
        double cnt = 0;
        for (int i = 0; i < n; i++) {
            if (t & (1 << aa[i])) {
                cnt += dis(x, y, arr[aa[i]].a, arr[aa[i]].b) / s;
                x = arr[aa[i]].c, y = arr[aa[i]].d;
            } else {
                cnt += dis(x, y, arr[aa[i]].c, arr[aa[i]].d) / s;
                x = arr[aa[i]].a, y = arr[aa[i]].b;
            }
        }
        if (ans == -1 || ans > cnt + val1) ans = cnt + val1;
    }
    return ;
}

int main() {
    cin >> n >> s >> t;
    for (int i = 0; i < n; i++) {
        double a, b, c, d;
        cin >> a >> b >> c >> d;
        arr.push_back({a, b, c, d, dis(a, b, c, d)});
        aa[i] = i;
        val1 += arr[i].len / t;
    }
    do {
        solve();
    } while (next_permutation(aa, aa + n));
    printf("%.10lf\n", ans);
    return 0;
}
